#[inline(never)]
fn square<T>(x: T) -> T 
where
    T: Copy + std::ops::Mul<Output = T>,
{
    x * x
}

fn main() {
    let a = square(3i32);
    let b = square(2.5f64);
    println!("{a}, {b}");
}